#ifndef NULL_LOG_STREAM_H
#define NULL_LOG_STREAM_H

// Remove warning about 'this' use in initiator list - pointer is only stored
#if defined(WIN32) && !defined(__GNUC__)
#pragma warning( disable : 4355 ) // using this in base member initializer list 
#endif

#include "null_log_buf.h"
namespace vpm
{
	namespace log 
	{
		namespace detail
		{
			class NullLogStream :private NullLogBuf, public std::ostream
			{
			public:
				NullLogStream():std::ostream(this)
				{

				}

				virtual ~NullLogStream()
				{
				}

				template <class T> 
				NullLogStream & operator << ( T )
				{
					// a do nothing operator; 
					return *this; 
				}

			private:
				NullLogStream(const NullLogStream& );
				NullLogStream& operator=(const NullLogStream&);
			};
		}
	}
}

#endif // 
